package com.javainterface.mapper;

import com.javainterface.entity.OrgEntity;
import com.javainterface.entity.UserEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface JavaInterfaceMapper {
    public void userInfoInsert(
            @Param("org") String org, @Param("userFlag") int userFlag, @Param("userAccount") String userAccount,
            @Param("userPwd") String userPwd, @Param("userName") String userName, @Param("sex") int sex,
            @Param("phoneNumber") String phoneNumber, @Param("telPhone") String telPhone, @Param("email") String email,
            @Param("job") String job, @Param("identityNumber") String identityNumber, @Param("userIndex") int userIndex,
            @Param("userStatus") String userStatus, @Param("businessLabel") String businessLabel, @Param("firstLoginFlag") int firstLoginFlag,
            @Param("bannedFlag") int bannedFlag, @Param("deleteFlag") int deleteFlag, @Param("createTime") String createTime,
            @Param("updateTime") String updateTime
    );

    public void orgInfoInsert(
            @Param("orgName") String orgName, @Param("orgNameLite") String orgNameLite, @Param("orgNameParent") String orgNameParent, @Param("orgNameEnglishLite") String orgNameEnglishLite,
            @Param("orgNameEnglish") String orgNameEnglish, @Param("orgType") int orgType, @Param("orgLevel") int orgLevel,
            @Param("socialCode") String socialCode, @Param("orgIndex") int orgIndex, @Param("orgStatus") String orgStatus,
            @Param("orgId") String orgId, @Param("orgPath") String orgPath, @Param("bannedFlag") int bannedFlag,
            @Param("deleteFlag") int deleteFlag, @Param("createTime") String createTime, @Param("updateTime") String updateTime);

    //添加组织
    public void orgInsert(@Param("name") String name, @Param("short_name") String short_name, @Param("level_num") String level_num, @Param("p_id") String p_id,
                          @Param("order_num") int order_num, @Param("memo") String memo, @Param("type") String type, @Param("org_code") String org_code, @Param("ext1") String ext1,
                          @Param("ext2") String ext2, @Param("org_type") String org_type, @Param("creator") int creator, @Param("creat_date") String creat_date, @Param("last_update_by") int last_update_by,
                          @Param("last_update_date") String last_update_date);

    //根据组织id更新组织
    public void updateOrgByOrgId(
            @Param("orgId") String orgId,
            @Param("name") String name, @Param("short_name") String short_name, @Param("level_num") String level_num, @Param("p_id") String p_id,
            @Param("order_num") int order_num, @Param("memo") String memo, @Param("type") String type, @Param("org_code") String org_code, @Param("ext1") String ext1,
            @Param("ext2") String ext2, @Param("org_type") String org_type, @Param("creator") int creator, @Param("creat_date") String creat_date, @Param("last_update_by") int last_update_by,
            @Param("last_update_date") String last_update_date
    );

    //根据ext1查询组织
    public OrgEntity selectOrgIdByExt1(@Param("ext1") String ext1);

    //根据组织id查询组织
    public OrgEntity selectOrgByOrgId(@Param("orgId") String orgId);

    //根据组织id删除组织
    public void deleteOrgByOrgId(@Param("orgId") String orgId);

    //启用组织
    public void activeOrgByOrgId(@Param("orgId") String orgId);

    //查询组织列表
    public List<OrgEntity> selectOrgList();

    //添加用户
    public void userInsert(@Param("display_name") String display_name, @Param("login_uid") String login_uid, @Param("login_pwd") String login_pwd,
                           @Param("active_flag") String active_flag, @Param("is_system") String is_system, @Param("creator") String creator,
                           @Param("creat_date") String creat_date, @Param("last_update_by") String last_update_by, @Param("last_update_date") String last_update_date,
                           @Param("memo") String memo, @Param("change_login_pwd_flag") String change_login_pwd_flag, @Param("validity") String validity,
                           @Param("u_type") String u_type, @Param("p_id") String p_id, @Param("org_id") String org_id, @Param("u_code") String u_code,
                           @Param("order_num") String order_num, @Param("three") String three, @Param("expire_date") String expire_date
    );
    //插入数据到userdetail
    public void userDetailInsert(@Param("userid") String userid,
                                 @Param("e_mail") String e_mail,
                                 @Param("phone") String phone,
                                 @Param("memo") String memo,
                                 @Param("wechat") String wechat);
    //插入数据到org_user_map
    public void orgUserMapInsert(@Param("user_id") String user_id,@Param("org_id") String org_id);


    //根据用户id更新用户数据
    public void updateUserByUserId(
            @Param("userId") String userId,
            @Param("display_name") String display_name, @Param("login_uid") String login_uid, @Param("login_pwd") String login_pwd,
            @Param("active_flag") String active_flag, @Param("is_system") String is_system, @Param("creator") String creator,
            @Param("creat_date") String creat_date, @Param("last_update_by") String last_update_by, @Param("last_update_date") String last_update_date,
            @Param("memo") String memo, @Param("change_login_pwd_flag") String change_login_pwd_flag, @Param("validity") String validity,
            @Param("u_type") String u_type, @Param("p_id") String p_id, @Param("org_id") String org_id, @Param("u_code") String u_code,
            @Param("order_num") String order_num, @Param("three") String three, @Param("expire_date") String expire_date
    );


    //根据登录名 查询用户id
    public UserEntity selectUserIdByLoginuserid(@Param("login_uid") String login_uid);

    //根据用户id查询用户
    public UserEntity selectUserByUserId(@Param("userId") String userId);

    //根据用户id删除用户
    public void deleteUserByUserId(@Param("userId") String userId);

    //查询所有用户
    public List<UserEntity> QueryAllUsers();

}
